home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 015a / acd200.zip / ACD.DOC < prev    next >
Text File  |  1991-11-21  |  42KB  |  957 lines

  1. ┌──────────────────────────────────────────────────────────────────────────┐
  2. │Documentation of ACD version 2.00, dated Nov. 21, 1991    (c) A. Merckens │
  3. └──────────────────────────────────────────────────────────────────────────┘
  4.  
  5. First, before giving some documentation on ACD, I'll give some background
  6. information on WHY I created yet Another Change Directory program.
  7.  
  8. ┌─────────────────────────────┐
  9. │   What I liked about .....  │
  10. └─────────────────────────────┘
  11.  
  12. NCD [Norton Change Directory - (c) Peter Norton]
  13. ───
  14.     - first program that made "fast" changing directories possible
  15.     - nice best guess when pathname is incorrectly spelled
  16.     - possible to remove "current" directory [NCD RD .]
  17.     - `speed search' when window with directory information appears on screen
  18.     - possible to rename a directory
  19.  
  20. LCD [Led's Change Directory  - (c) Keith Ledbetter]
  21. ───
  22.     - directory information on more than one drive at a time
  23.     - change to correctly specified directory EVEN if not in directory
  24.       database
  25.     - fast
  26.  
  27. ┌─────────────────────────────┐
  28. │   What I disliked about ... │
  29. └─────────────────────────────┘
  30.  
  31. NCD
  32. ───
  33.     - only directory-information on one drive at a time
  34.     - directories are unsorted
  35.     - updates are unsorted [NCD MD dirname]
  36.     - messages that are driving me crazy when switching to a correctly
  37.       specified path [NCD d:\bin\dos40; I know, I know, I should have
  38.       specified NCD CD d:\bin\dos40]
  39.     - unwanted updates of directory-information when NCD encounters an unknown
  40.       directory
  41.     - cannot write directory-information for network-drives
  42.     - slow
  43.     - cannot rename a directory on a network drive
  44.  
  45.  
  46. LCD
  47. ───
  48.     - directories are unsorted
  49.     - updates are unsorted [LCD MD dirname], even worse than NCD
  50.     - pop-up window is too small when selecting from many directories
  51.     - not possible to remove "current" directory [LCD RD . ]
  52.     - not possible to explicitly give a drive name, e.g. LCD d:bi is not
  53.       allowed
  54.     - strange "BEST GUESS" when partial directory name could not be found
  55.     - not DV-aware
  56.     - if EGA/VGA 43/50 lines/page: on exit, the cursor is positioned at the
  57.       wrong line
  58.     - not possible to remove directory-information (locally), without actually
  59.       removing directories: when network drives are scanned, quite often users
  60.       have the same directory names (consider: UTILS); however, you may not be
  61.       interested in these, and wish to remove `useless' directory-information
  62.     - no `speed search' when pop-up window with directory information on screen
  63.       [Well, in version LCD 4.0 - 10 days after first release of ACD 1.00 -
  64.       Mr. Ledbetter implemented this in the same way as ACD....]
  65.  
  66.  
  67. So, I created Another Change Directory, which is, in my prejudiced opinion,
  68. the best of these two worlds.
  69.  
  70.  
  71. About the program ACD
  72.  
  73.    ACD is a program designed to have all the features I liked in LCD and NCD,
  74. and also to have the features I thought were missing in these programs. Just
  75. like LCD, ACD makes changing directories much easier, especially when you have
  76. a large harddisk with lots of different partitions or are hooked on a network
  77. drive.
  78.  
  79.    ACD works "across all drives" by maintaining the directory database of ALL
  80. drives in the file C:\ACD.IDX (by default). This means that you don't have to
  81. specify a drive letter when changing to a directory on a different drive.
  82. However, you are allowed to specify the drive letter which will be used
  83. to consider only the directories on the drive specified.
  84.  
  85.  
  86. The syntax:
  87.  
  88.    ACD [drive:]partial_dir[\][options]: change to a directory or present
  89.                                         selection
  90.    ACD =[drive:]partial_dir       : use scrollback history to change directory
  91.    ACD rd directory_name          : delete directory; update database
  92.    ACD md directory_name          : create directory; update database
  93.    ACD rd directory_name /local   : delete directory-information recursively
  94.                                     below directory_name from database; do not
  95.                                     actually delete directories
  96.    ACD md directory_name /local   : create directory-information; do not
  97.                                     actually create directory
  98.    ACD ren dir1 dir2              : rename dir1 to dir2; update database
  99.    ACD /create  <drivelist>       : scan drives and create directory database
  100.    ACD /qcreate <drivelist>       : scan drives (ignore dirs with extensions)
  101.                                     and create directory database
  102.    ACD /add     <drivelist>       : scan drives and add to directory database;
  103.                                     existing info on a drive will be replaced
  104.    ACD /qadd    <drivelist>       : scan drives (ignore dirs with extensions)
  105.                                     and add to directory database
  106.    ACD /?, or ACD /h              : short help
  107.  
  108.   Options:
  109.      /c                           : select Current drive [toggle]
  110.      /i                           : test Inactive drives [toggle]
  111.      /g                           : Graphical display of paths [toggle]
  112.      /l                           : highlight selection Line [toggle]
  113.      /m                           : show Menu with choices [toggle]
  114.      /u                           : add Unknown directories with known
  115.                                     parents [toggle]
  116.      /0                           : default commandline (0 pars) [toggle
  117.                                     between '*', '=' and empty]
  118.  
  119.  
  120. Changing directories:
  121.  
  122.    ACD is used to switch quickly between directories across any drive. You
  123.    simply invoke ACD and give it the full or partial name of the directory you
  124.    wish to change to. For example, if you have a directory named D:\COMM\KERMIT
  125.    you could switch to this directory with the command:
  126.  
  127.        C:\> ACD ker
  128.  
  129.    ACD will first try to do an immediate change to the directory name that you
  130.    specify. If that change works, ACD simply exits immediately. If it fails,
  131.    then ACD looks into your directory database and tries to figure out the
  132.    directory name that you wanted. If more than one directory existed with the
  133.    same partial name that you gave to ACD, it will display a pop-up window on
  134.    the screen containing all of the matches found. Simply use the movement
  135.    keys (PgUp, PgDn, Home, End, Arrow keys) to highlight the directory that you
  136.    want to change to, then hit <Enter>.
  137.  
  138.    If the `current directory' is included in the partial match set, the
  139.    highlight is positioned on this directory (sort of like "you are here"),
  140.    otherwise, the highlight is positioned on the first match.
  141.  
  142.    Within the pop-up window, a `speed search' is available, i.e. when you
  143.    press a key which doesn't have a special function (see below), then the
  144.    character is added to the `partial name' you entered at the command-line,
  145.    the pop-up window will possibly resized and the new selections will be
  146.    shown if more than one directory exists with the same partial name: as soon
  147.    as exactly one directory is selected by speed search, the directory will be
  148.    selected without further confirmation.
  149.  
  150.    By pressing * the method of partial name search is toggled. Normally, ACD
  151.    matches the partial name at the start of the last part of the directory.
  152.    When pressing * once, it will match the partial name anywhere in the last
  153.    part of the directory (see example below). If you press * again, the first
  154.    method is used again.
  155.    If you press \, then all subdirectories of the current selection are shown
  156.    as well; if you press \ again, the previous state is restored.
  157.  
  158.    If you press ESC, the operation will be aborted.
  159.    The + key makes the highlighted line point to the next drive in the
  160.    selection window, and the Tab or ArrowRight makes the highlighted line
  161.    point to the next directory with the same parent as the currently
  162.    highlighted line. If you press the Ctrl-key and the Arrow-Left key
  163.    simultaneously, then the highlight will go to the parent of the currently
  164.    highlighted path.
  165.    By pressing <ALT>C simultaneously, the highlighted path will be centered on
  166.    the screen, allowing you to see the directories above and below the
  167.    highlighted path. By pressing <ALT>T simultaneously, the highlighted path
  168.    will be put on top of the screen.
  169.  
  170.    Summary on the action of keys when in pop-up window:
  171.  
  172.        F1             : gives help on the special keys
  173.        Pg-Up          : go to top of page, or go one page up
  174.        Pg-Dn          : go to bottom of page, or go one page down
  175.        End            : go to last entry
  176.        Home           : go to first entry
  177.        Arrow-Up       : go to previous entry
  178.        Arrow-Dn       : go to next entry
  179.        Tab            : go to next entry with the same `parent'
  180.        Arrow-Right    : go to next entry with the same `parent'
  181.        BackTab        : go to previous entry with the same `parent'
  182.        Arrow-Left     : go to previous entry with the same `parent'
  183.        Ctrl Arrow-Left: go to `parent' of currently highlighted path
  184.        ALT-C          : center highlighted path on screen
  185.        ALT-G          : toggle graphic display
  186.        ALT-L          : toggle method of highlighting current selection; the
  187.                         whole line is highlighted, or only the last
  188.                         subdirectory
  189.        ALT-M          : Make new directory in highlighted path
  190.        ALT-N          : reName highlighted directory
  191.        ALT-R          : remove highlighted directory tree (locally)
  192.        ALT-T          : put highlighted path on top
  193.        +              : go to first entry of next drive
  194.        *              : toggle search method
  195.        \ or /         : toggle display of all subdirectories of current
  196.                         selection
  197.        Enter          : switch to highlighted entry
  198.        A..Z           : when the path's are preceded by capital characters,
  199.                         then these can be chosen to select a directory (see
  200.                         the /m option how to disable this menu)
  201.        Esc            : abort operation
  202.        BS, Del        : delete character from partial name for `speed search'
  203.        :              : select all drives instead of the one specified
  204.        other char.    : add character to partial name for `speed search';
  205.                         '?' has the common wildcard meaning
  206.  
  207.  
  208.    Example:
  209.  
  210.        C:\> ACD do
  211.  
  212.    If this selects more than one directory, a pop-up window will be shown on
  213.    the screen:
  214.  
  215.    ┌───╥─────────────────────────────[F1 help]────────────────[1/2]────────┐
  216.    │ A ║ c:\bin\dos40                                                      │
  217.    │ B ║ d:\doreen                                                         │
  218.    └───╨──────────────────────────────────────────────────────[do        ]─┘
  219.  
  220.    In this case, two directories are selected. By using the arrow-keys and the
  221.    <Enter>, or by pressing the next character (r or s), or by pressing a menu
  222.    choice (the capital characters A or B), a selection can be made.
  223.  
  224.    By pressing the *, you will `toggle' the method of string-searching, and
  225.    you'll get a pop-up window equal to the command:
  226.  
  227.         ACD *do
  228.  
  229.    So, for example:
  230.  
  231.    ┌───╥─────────────────────────────[F1 help]────────────────[1/4]────────┐
  232.    │ A ║ c:\4dos                                                           │
  233.    │ B ║ └─ bin\dos40                                                      │
  234.    │ C ║ d:\doreen                                                         │
  235.    │ D ║ g:\utils\seldom                                                   │
  236.    └───╨──────────────────────────────────────────────────── *[do        ]─┘
  237.  
  238.    By entering * again, the first screen will be shown again.
  239.    When you press \, you may get the following screen:
  240.  
  241.    ┌───╥─────────────────────────────[F1 help]────────────────[1/6]────────┐
  242.    │ A ║ c:\4dos                                                           │
  243.    │ B ║ └─ bin\dos40                                                      │
  244.    │ C ║ d:\doreen                                                         │
  245.    │ D ║ ├──────── goodies                                                 │
  246.    │ E ║ └──────── oldies                                                  │
  247.    │ F ║ g:\utils\seldom                                                   │
  248.    └───╨──────────────────────────────────────────────────── *[do*\      ]─┘
  249.  
  250.    This is the so called "graphic" presentation; if you press ALT-G, you will
  251.    get the following screen:
  252.  
  253.    ┌───╥─────────────────────────────[F1 help]────────────────[1/6]────────┐
  254.    │ A ║ c:\4dos                                                           │
  255.    │ B ║ c:\bin\dos40                                                      │
  256.    │ C ║ d:\doreen                                                         │
  257.    │ D ║ d:\doreen\goodies                                                 │
  258.    │ E ║ d:\doreen\oldies                                                  │
  259.    │ F ║ g:\utils\seldom                                                   │
  260.    └───╨──────────────────────────────────────────────────── *[do*\      ]─┘
  261.  
  262.    If you prefer the non-graphic presentation, you may add the /g switch, or
  263.    use a patch (described below), or use the /g switch in the environment
  264.    variable ACD.
  265.    By entering \ again, you will get the selection screen with 4 matches
  266.    again. You can specify from the commandline which search method has to be
  267.    used, and/or if all subdirectories of the selection have to be shown by
  268.    starting with a star ("*") and finishing with a backslash ("\"), for
  269.    example:
  270.  
  271.            ACD *do\
  272.  
  273.    will yield the previous screen directly from the commandline.
  274.    Note that as soon as exactly one directory is selected by Speed Search, the
  275.    directory is selected, without further confirmation.
  276.  
  277.    By default the line that indicates the current selection is highlighted; if
  278.    you only want the last subdirectory highlighted, you can add the /l option
  279.    to ACD, or press ALT-L when in the pop-up window.
  280.  
  281.    By default, all drives that are mentioned in the pop-up window are tested
  282.    for their existence. This ensures that only directory information of the
  283.    active drives is displayed. If you don't like this, or if testing your
  284.    drives is S L O W then you may add the /i option. ACD will then display
  285.    also the information of the (possibly) non-active drives. If you would like
  286.    to make this the default, then you could patch ACD (described at the end),
  287.    or use the environment variable ACD.
  288.  
  289.    If you KNOW you wish to change to a directory on the default drive, you
  290.    may specify
  291.  
  292.        ACD dir /c
  293.  
  294.    which will only show you the matching directories on the current drive; If
  295.    you KNOW you wish to change to a directory on the E-drive (for example),
  296.    then you may specify
  297.  
  298.        ACD E:dir
  299.  
  300.    which will only show the matching directories on the E-drive. If a
  301.    selection is shown, and you change your mind about the drive specification,
  302.    then you may press : which will result in showing the matching directories
  303.    based on all drives, as if you did not include E: or the /c option from the
  304.    command-line.
  305.  
  306.  
  307. Scrollback history:
  308.  
  309.    Each time you change to a directory using ACD and using information in the
  310.    ACD-database, information is written to the ACD-database to remember the
  311.    directory you just changed to. By default the scrollback history will
  312.    remember up to 20 directories. Since ACD now writes each time it is used to
  313.    change to a directory, the performance on a XT might be slow. If you don't
  314.    want to use the scrollback history function for this or another reason, you
  315.    may change the history size to zero. See "Limitations and other features "
  316.    at the end of this document how to proceed.
  317.    When you changed to a few directories and wish to return to one of them,
  318.    you may enter:
  319.  
  320.         ACD =
  321.  
  322.    Now a pop-up window will appear which will show the directories you have
  323.    changed to.
  324.    Once again, you can use speedsearch or the keys mentioned above to make a
  325.    selection. You may also call speedsearch from the commandline, by
  326.    specifying, for example:
  327.  
  328.         ACD =do
  329.  
  330.    which will present a partial match set using ONLY the last "historysize"
  331.    (default: 20) directories you changed to. The first entry on screen is the
  332.    last directory you changed to, etc.
  333.  
  334.    The scrollback history is destroyed when you enter CD /add [drive], or CD
  335.    /scan [drive].
  336.    Note that if you change to a directory directly - i.e. ACD does not have to
  337.    use information from its database - ACD does not add information to the
  338.    scrollback history. So, for example, if the directory C:\DOS40 exists, and
  339.    you enter:
  340.  
  341.         ACD C:\DOS40
  342.  
  343.    then this information is not added to the scrollback history. However, in
  344.    this case, if you would have entered
  345.  
  346.         ACD DOS
  347.  
  348.  
  349.    and selected C:\DOS40, then the information WOULD be added.
  350.  
  351.  
  352. Scanning directories:
  353.  
  354.    The first time you execute ACD, you must specify the /CREATE parameter
  355.    ("ACD /create") which instructs ACD to scan all of your hard drives and
  356.    create a file called ACD.IDX in the root directory of drive C. Depending on
  357.    how you will create/remove your directories in the near future, it may be
  358.    necessary to periodically rescan your drives.
  359.  
  360.    If you only want ACD to know about certain specific drives (for example:
  361.    only non-network drives), you can specify a drive list after the /CREATE
  362.    keyword. To have ACD only scan drives C, E, and G, just enter:
  363.  
  364.        C:\> ACD /CREATE CEG
  365.  
  366.    If at any stage, you wish to add information about another drive, say drive
  367.    F, then you could enter:
  368.  
  369.        C:\> ACD /ADD F
  370.  
  371.    If you are sure that you don't have subdirectories which have an extension
  372.    in their name (for example, C:\PROGRAMS.OLD\) then you can specify
  373.    /QCREATE, (/QADD), instead of /CREATE (/ADD).  This causes ACD to scan
  374.    approximately 33% quicker than without the Q.
  375.  
  376.    Starting from version 1.03: if you ADD a drive for which already
  377.    information is stored in the directory database, this information will be
  378.    replaced by new information at the end of the information database, so no
  379.    redundant information will be stored.
  380.  
  381.  
  382. Direct database updating:
  383.  
  384.    You can also use ACD to create, remove and rename directories with
  385.    immediate database updating. This means that you don't have to rescan your
  386.    drives to update the directory database. ACD will create, delete or rename
  387.    the directory specified, and then update the ACD.IDX database at the same
  388.    time. For example, to create a directory on drive F: and put that directory
  389.    in the database, you'd do:
  390.  
  391.        C:\> ACD md f:\temp
  392.  
  393.    This ability comes in especially handy for users of command shells that
  394.    allow aliasing, such as CED and 4DOS. With these utilities, you can change
  395.    the standard MD and RD commands to invoke ACD instead. With 4DOS, you could
  396.    set up the aliases like below in a file called, say, C:\ALIASES
  397.  
  398.        md ACD md %&
  399.        mkdir md
  400.        rd ACD rd %&
  401.        rmdir rd
  402.        cd ACD %&
  403.        rendir ACD ren %&
  404.        ACD <drive:\dir>ACD.EXE
  405.  
  406.    Now you can give in 4DOS the command (or add to your AUTOEXEC.bat)
  407.  
  408.        alias /r c:\aliases
  409.  
  410.    Note: the last line - ACD <drive:\dir>ACD.EXE - is not necessary if ACD.EXE
  411.    is in your search PATH; however, a program which has just a simple task -
  412.    in this case `change directory' - executes much faster if the PATH does not
  413.    have to be searched.
  414.    Another suggestion: if you have defined an alias for CD and wish to change
  415.    to the previous directory, enter CD.. (without space) instead of CD ..
  416.    (with space), since in the first case ACD will not be called to execute
  417.    this very simple task and consequently no loading of the program has to
  418.    take place, and thus changing to the previous directory will go faster
  419.    (especially noticeable on an XT), with less typing.
  420.  
  421.    When the pop-up window is on screen, you can also use the ALT-R combination
  422.    to remove the highlighted path by answering the question
  423.  
  424.      "REMOVE <subdirspecification> (L/Y/N)"
  425.  
  426.    with Y(es).
  427.  
  428.    Furthermore you can also Make or reName a directory when the pop-up window
  429.    is on screen by pressing ALT-M and ALT-N respectively.
  430.  
  431. Local database updating:
  432.  
  433.    You can also use ACD to create and remove directory information only by
  434.    using the /local switch. ACD will NOT create or delete the directory
  435.    specified, but only update the ACD.IDX database.
  436.    For example, to remove the information on a directory and its
  437.    subdirectories on drive G:
  438.  
  439.        C:\> ACD rd G:\users\mally /local
  440.  
  441.    Then all information about g:\users\mally is deleted from the database, and
  442.    all of its subdirectories. This is especially handy for users of network
  443.    drives, who do not want this information in their database. You can also
  444.    use the ALT-R combination in the pop-up window to remove the highlighted
  445.    path and all of its subdirectories locally, by answering the question
  446.  
  447.         "REMOVE <subdirspecification> (L/Y/N)"
  448.  
  449.    with L(ocal).
  450.  
  451.    Also, you can add local directory information to the database. Eg. if the
  452.    directory c:\bin\testcase is missing in the database info, but you wish to
  453.    include it, you can update the database with this database information
  454.    without rescanning:
  455.  
  456.        C:\> ACD md c:\bin\testcase /local
  457.  
  458.    Note however that in order for ACD to update the database, the directory
  459.    c:\bin (the parent) should exist.
  460.  
  461.  
  462. Renaming directories:
  463.  
  464.    You can also use ACD to give a directory another name. ACD will directly
  465.    rename the directory and update the ACD-database. Directories can only be
  466.    renamed if the parents of the directory to be renamed are the same as the
  467.    parents of the new directory specification. For example:
  468.  
  469.        ACD ren c:\bin\dos c:\bin\olddos
  470.  
  471.    is allowed, whereas
  472.  
  473.        ACD ren c:\bin\dos c:\olddos
  474.  
  475.    is not allowed, since they have different parents. You can also rename the
  476.    current directory by specifying
  477.  
  478.        ACD ren . olddos
  479.  
  480.  
  481. The ACD and ACD_color environment variables
  482.  
  483.    If you'd rather have ACD keep its ACD.IDX database another place than the
  484.    root directory of drive C:, you can specify the filename you want in the
  485.    environment variable named ACD. For example, if you'd like to keep the
  486.    ACD.IDX file on drive D: in your UTILS directory, you would put
  487.  
  488.        SET ACD=D:\UTILS\ACD.IDX
  489.  
  490.    in your AUTOEXEC.BAT file.
  491.  
  492.    Furthermore, you can add the options to the environment variable: for
  493.    example:
  494.  
  495.       SET ACD=/c/0
  496.  
  497.    would set the default options to "current drive", and if the commandline
  498.    (except for options) is empty, the default commandline will be '*'. Of
  499.    course both options and a different path for the ACD.IDX can be specified
  500.    in this environment variable.
  501.    Note that the switches are real toggles, that is, if you have defined the
  502.    ACD environment variable as above, then by calling ACD /c all the drives
  503.    will be considered again. You may toggle as much as you like...
  504.  
  505.    You can change the colors of the pop-up window. You do this by setting an
  506.    environment variable named "ACD_COLOR":
  507.  
  508.    Set ACD_Color = backgroundcolor foregroundcolor
  509.  
  510.    The colors can be chosen from the table below (default is: 0 7)
  511.  
  512.           Dark Colors   ║
  513.          (Foreground &  ║  Light Colors
  514.           Background)   ║  (Foreground)
  515.         ═══════════╤════╬══════════════╤════
  516.          Black     │ 0  ║ DarkGray     │  8
  517.          Blue      │ 1  ║ LightBlue    │  9
  518.          Green     │ 2  ║ LightGreen   │ 10
  519.          Cyan      │ 3  ║ LightCyan    │ 11
  520.          Red       │ 4  ║ LightRed     │ 12
  521.          Magenta   │ 5  ║ LightMagenta │ 13
  522.          Brown     │ 6  ║ Yellow       │ 14
  523.          LightGray │ 7  ║ White        │ 15
  524.  
  525.    Example:
  526.  
  527.        Set ACD_Color = 2 4
  528.  
  529.    Would give you red characters in a green window. The default, lightgray
  530.    characters on black background works nicely on a monochrome monitor.
  531.  
  532. Some more examples:
  533.  
  534.    ACD rd .        : Remove current directory.
  535.    ACD rd . /local : Remove information only on current directory.
  536.    ACD cd ....     : Just like in 4DOS: go 3 directories back.
  537.    ACD d:*         : Show all paths in the database on drive D.
  538.    ACD s*          : Find all paths that start with s; equal to ACD s.
  539.    ACD s\          : Find all paths that start with s and show all its
  540.                      subdirectories.
  541.    ACD *in         : Find all paths that have the word "in" in them.
  542.    ACD *           : Show all paths in the database.
  543.    ACD **          : Show all paths in the database, and use different Speed
  544.                      Search method.
  545.    ACD =s          : Find all paths in the scrollback history that start with
  546.                      an s.
  547.  
  548.  
  549.  
  550. Limitations and other features:
  551.  
  552.  . The ACD-database can have a maximum size of approximately 64K bytes. One
  553.    directory entry takes room for at least 5 bytes, and at most 16 bytes. If
  554.    we assume that the mean value is about 9 bytes (i.e. on average the length
  555.    of a directory-name is 5 characters), then about 7300 directories can be
  556.    stored.
  557.  
  558.  . If you have more than 64K-32 bytes of directory information, ACD will abort
  559.    and save the ACD-database up to that point.
  560.  
  561.  . ACD is still rather primitive on wildcards: it acts almost like plain DOS.
  562.    ACD only understands the asterisk ('*' - multiple characters match) on the
  563.    first or last position and the questionmark ('?' - one character match) on
  564.    any position.
  565.  
  566.  . ACD is DesqView aware. If DesqView is active, then for simple screen
  567.    writes, it uses the BIOS and for intensive screenwrites, it uses the
  568.    Virtual Screen Buffer of DV. Furthermore, - more important - the pop-up
  569.    window correctly pops-down, i.e. the DV-screen is correctly restored.
  570.  
  571.  . The directories will be presented alphabetically sorted, where the drive
  572.    order is dependent on how you created the ACD-database. If you
  573.  
  574.        ACD /CREATE DCF
  575.  
  576.    then first the matching files on drive D will be listed, then the ones on
  577.    drive C and then on drive F. Note that this is a feature.
  578.  
  579.  . When drives do not exist anymore, for example when the network is not
  580.    loaded, the directories of these invalid drives are excluded from the
  581.    partial match list.
  582.  
  583.  . Because of its database format, ACD cannot store a child directory in the
  584.    database if its parent is not there. Some people may regard this as a
  585.    feature, others as a limitation. For example, if you do this (with no
  586.    `aliases' on MD):
  587.  
  588.        ACD rd C:\Useless /local
  589.        ACD md C:\Useless\Junk
  590.  
  591.    ACD will create the directory "Junk", but it will not store the name in the
  592.    database. You won't be notified; the reason for this is that I don't like
  593.    to be notified all the time.
  594.  
  595.  . Some people hate to lose precious environment space, and that's why you are
  596.    allowed to patch ACD.EXE to have your own preferred colors by default,
  597.    without setting the "ACD_color" environment variable. However, you are NOT
  598.    allowed to redistribute this patched version, but only the original
  599.    version, with the complete documentation.
  600.    The easiest way to make the patch is to use PATCH22 from Jurgen A. Doornik
  601.    (current version: P22V12.zip), which can also be obtained from the SIMTEL20
  602.    archives, and is also free of charge.
  603.  
  604.    By using the following table:
  605.  
  606.           Dark Colors         ║
  607.          (Foreground &        ║  Light Colors
  608.          Background) Dec Hex  ║  (Foreground)  Dec Hex
  609.         ═══════════╤══════════╬══════════════╤════════
  610.          Black     │ 0  (01)  ║ DarkGray     │  8 (08)
  611.          Blue      │ 1  (02)  ║ LightBlue    │  9 (09)
  612.          Green     │ 2  (03)  ║ LightGreen   │ 10 (0A)
  613.          Cyan      │ 3  (04)  ║ LightCyan    │ 11 (0B)
  614.          Red       │ 4  (05)  ║ LightRed     │ 12 (0C)
  615.          Magenta   │ 5  (06)  ║ LightMagenta │ 13 (0D)
  616.          Brown     │ 6  (07)  ║ Yellow       │ 14 (0E)
  617.          LightGray │ 7  (08)  ║ White        │ 15 (0F)
  618.  
  619.    the command
  620.  
  621.        patch22 acd.exe ?\h2A2E2A?\h2A2E2A....?
  622.  
  623.    will patch the default colors of ACD in the colors you prefer: the four
  624.    dots must be replaced by the HEX values of the BackGround Color and
  625.    ForeGround Color. For example:
  626.  
  627.        patch22 acd.exe ?\h2A2E2A?\h2A2E2A010E?
  628.  
  629.    would give you by default yellow characters on blue background, without
  630.    using any environment space.
  631.    You can also modify ACD_COL.P22 to suit your needs and call:
  632.  
  633.        patch22 @acd_col.p22
  634.  
  635.    Of course, you can use Norton utilities, or PCTOOLS as well to change the
  636.    colors. The searchstring to be used is HEX 2A 2E 2A. The two bytes to be
  637.    changed are positioned after this searchstring (00 0F).
  638.  
  639.  . By default, ACD without parameters acts just as CD without parameters: show
  640.    current directory name. This patch changes the functionality of ACD without
  641.    parameters:
  642.  
  643.         patch22 acd.exe +5?\h2A2E2A?*?
  644.  
  645.    which changes the third byte after the searchstring (hex 20).
  646.    Now ACD without parameters is equivalent to ACD *, just like NCD.
  647.  
  648.    Another patch to change the function of ACD without parameters is:
  649.  
  650.         patch22 acd.exe +5?\h2A2E2A?=?
  651.  
  652.    which, again, changes the third byte after the searchstring (hex 20). Now
  653.    ACD without parameters is equivalent to ACD =, so by default the scrollback
  654.    history will be used.
  655.  
  656.    You can also modify ACD_PAR0.P22 to suit your needs and call:
  657.  
  658.        patch22 @acd_par0.p22
  659.  
  660.  
  661.  . Another patch that is allowed changes the size of the scrollback history:
  662.  
  663.         patch22 acd.exe +6?\h2A2E2A?\h00?
  664.  
  665.    which changes the fourth byte after the searchstring (hex 14) in 0, which
  666.    will yield a history size of 0;
  667.  
  668.         patch22 acd.exe +6?\h2A2E2A?\h20?
  669.  
  670.    which changes the fourth byte after the searchstring in hex 20, which will
  671.    yield a history size of 32.
  672.    You can also modify ACD_hist.P22 to suit your needs and call:
  673.  
  674.        patch22 @acd_hist.p22
  675.  
  676.  . The next patch makes sure that the ACD.IDX database will not be updated
  677.    when ACD encounters an unknown sub-directory with a known parent. See also
  678.    the /u option.
  679.  
  680.         patch22 acd.exe +7?\h2A2E2A?\h00?
  681.  
  682.    which changes the fifth byte after the searchstring (hex 01) in 00.
  683.  
  684.         patch22 acd.exe +7?\h2A2E2A?\h01?
  685.  
  686.    changes the fifth byte after the searchstring back in hex 01.
  687.    You can also modify ACD_know.P22 to suit your needs and call:
  688.  
  689.        patch22 @acd_know.p22
  690.  
  691.  . The next patch makes sure that by default the drives will not be tested for
  692.    their existence: all information will be displayed. The /i option will then
  693.    get the opposite meaning.
  694.  
  695.         patch22 acd.exe +8?\h2A2E2A?\h01?
  696.  
  697.    which changes the sixth byte after the searchstring (hex 00) in 01.
  698.  
  699.         patch22 acd.exe +8?\h2A2E2A?\h00?
  700.  
  701.    changes the sixth byte after the searchstring back in hex 00.
  702.    You can also modify ACD_drv.P22 to suit your needs and call:
  703.  
  704.        patch22 @acd_drv.p22
  705.  
  706.  . The next patch will make the non-graphical output the default.
  707.    The /g option will then get the opposite meaning.
  708.  
  709.         patch22 acd.exe +9?\h2A2E2A?\h00?
  710.  
  711.    which changes the seventh byte after the searchstring (hex 01) in 00.
  712.  
  713.         patch22 acd.exe +9?\h2A2E2A?\h01?
  714.  
  715.    changes the seventh byte after the searchstring back in hex 01.
  716.    You can also modify ACD_graf.P22 to suit your needs and call:
  717.  
  718.        patch22 @acd_graf.p22
  719.  
  720.  . The next patch will make the highlight only affect the last subdirectory in
  721.    the pop-up window instead of the complete line. The /l option will then get
  722.    the opposite meaning.
  723.  
  724.         patch22 acd.exe +10?\h2A2E2A?\h00?
  725.  
  726.    which changes the eighth byte after the searchstring (hex 01) in 00.
  727.  
  728.         patch22 acd.exe +10?\h2A2E2A?\h01?
  729.  
  730.    changes the eighth byte after the searchstring back in hex 01.
  731.    You can also modify ACD_lite.P22 to suit your needs and call:
  732.  
  733.        patch22 @acd_lite.p22
  734.  
  735.  . The next patch will make the /c option default: use the information on the
  736.    current drive only. The /c option used from the commandline will then get
  737.    the opposite meaning.
  738.  
  739.         patch22 acd.exe +11?\h2A2E2A?\h01?
  740.  
  741.    which changes the ninth byte after the searchstring (hex 00) in 01.
  742.  
  743.         patch22 acd.exe +11?\h2A2E2A?\h00?
  744.  
  745.    changes the ninth byte after the searchstring back in hex 00.
  746.    You can also modify ACD_lite.P22 to suit your needs and call:
  747.  
  748.        patch22 @acd_cur.p22
  749.  
  750.  
  751.  . The next patch will put the menu choices off by default. The /m option used
  752.    from the commandline will then get the opposite meaning.
  753.  
  754.         patch22 acd.exe +12?\h2A2E2A?\h00?
  755.  
  756.    which changes the tenth byte after the searchstring (hex 01) in 00.
  757.  
  758.         patch22 acd.exe +12?\h2A2E2A?\h01?
  759.  
  760.    changes the tenth byte after the searchstring back in hex 01.
  761.    You can also modify ACD_menu.P22 to suit your needs and call:
  762.  
  763.        patch22 @acd_menu.p22
  764.  
  765.  . Another patch that is allowed changes the maximum size of the pop-up window
  766.  
  767.         patch22 acd.exe +13\h2A2E2A?\h10?
  768.  
  769.    which changes the eleventh byte after the searchstring (hex FF) in 10,
  770.    which will yield a maximum pop-up window size of 16 (hex 10);
  771.  
  772.         patch22 acd.exe +13?\h2A2E2A?\hFF?
  773.  
  774.    which changes the eleventh byte after the searchstring in hex FF, which
  775.    will yield a pop-up window based on the number of lines or your screen.
  776.    You can also modify ACD_win.P22 to suit your needs and call:
  777.  
  778.        patch22 @acd_win.p22
  779.  
  780.  
  781.  . You might want to check all the patches you have made. By entering ACD /?
  782.    you get a help screen where the options are indicated by OFF or ON.
  783.  
  784.  . Note that starting from version 2.00 all options could also be set by
  785.    the environment variable ACD.
  786.  
  787.  . ACD returns detailed ERRORLEVEL conditions, which can be useful if ACD is
  788.    invoked from batch files.  The errorlevels are:
  789.  
  790.               0  :   ACD was successful
  791.               1  :   Escape pressed
  792.               2  :   No parameters on commandline
  793.               3  :   Unknown command
  794.               4  :   Unable to change to directory (directory not found)
  795.               5  :   ACD-database is full; partial directory-info saved
  796.               6  :   Unable to create directory
  797.               7  :   Unable to remove directory
  798.               8  :   ACD-database is corrupted
  799.               9  :   Error opening ACD-database
  800.              10  :   Error reading ACD-database
  801.              11  :   Error writing ACD-database
  802.              12  :   ACD_color specification is incorrect
  803.              13  :   Directory could not be renamed
  804.              14  :   Directory to be renamed is not a directory
  805.              15  :   Directories must have equal parent for rename
  806.  
  807.    The resulting error message can be redirected by adding >NUL to the
  808.    ACD command.
  809.  
  810.  . For the interested user, here is what ACD does when changing to a
  811.    directory:
  812.  
  813.        1.  Try to change directly from current directory to the directory
  814.            specified. If this directory does not exist, go to step 2.
  815.  
  816.        2.  Look for a match of the last part of the directory entry. For
  817.            example, if you specify "ACD sou", then all of the following would
  818.            match:
  819.  
  820.                c:\compiler\c\sources
  821.                d:\database\soup
  822.                f:\acd\source
  823.  
  824.            If more than one match found, display the pop-up window. If none
  825.            found, go to step 3.
  826.  
  827.        3.  At this point, ACD just shrinks the partial string and repeats step
  828.            2, until one or more directories are found.
  829.  
  830.  
  831.  
  832. This program is FREE of charge and may be used by anyone who wishes to. So,
  833. also in a commercial/educational environment. However, you are not allowed to
  834. remove the Copyright Statement, or to sell this program, or bundle it with
  835. other (commercial) goods. You may give it to anyone you like, but only in its
  836. original form with the complete documentation.
  837.  
  838. If you have any (positive/negative) comments or suggestions, I would like to
  839. hear from you.
  840.  
  841. Furthermore, I will not be held liable for any misfortune that may or may not
  842. happen to you, which may or may not be the result of using or not using this
  843. program. In other words, the usual disclaimer applies here.
  844.  
  845.  
  846.                                                 Arjen Merckens
  847.                                                 Gandhilaan 35
  848.                                                 1069 NC  Amsterdam
  849.                                                 The Netherlands
  850.                                                 Internet: AMBASE@RUG.NL
  851.  
  852.  
  853. Acknowledgments:
  854.  
  855. David E. Jenkins (DAVE.JENKINS@OFFICE.WANG.COM) has given me numerous useful
  856. suggestions, like the scrollback history function, and both he and Jurgen A.
  857. Doornik (ECONZ@VAX.OX.AC.UK), author of PATCH22, tested and commented the
  858. Beta-release of ACD version 1.10.
  859. Duncan Murdoch (DMURDOCH@MATH.CARLETON.CA) has given me numerous useful
  860. suggestions and tested the Beta-release of ACD version 2.00.
  861. Thanks for your feedback!
  862.  
  863.  
  864. Revision History:
  865.  
  866. version 2.00, Nov. 21, 1991
  867.   - added menu (and corresponding /m option) for even faster selection of
  868.     directories in the pop-up window.
  869.   - possibility to specify default options in the environment variable ACD.
  870.   - added ALT-M for Making new directories when in pop-up window.
  871.   - added ALT-N for reNaming directories when in pop-up window.
  872.   - added ALT-R for Removing directories (locally) when in pop-up window.
  873.   - added ALT-L for toggling method of highlighting current selection.
  874.   - added /l option for toggling method of highlighting current selection.
  875.   - added ? as wildcard, like in DOS.
  876.   - previously, the videomode was automatically reset to textmode 3 (if
  877.     unequal to 0/1/2/3/7; due to TurboPascal 6.0), now the current videomode
  878.     is kept. The maximumsize of the pop-up window is dependent on the
  879.     row-maximum of the videomode. Note however that ACD is unable to correctly
  880.     display the pop-up window when a graphics mode is used.
  881.   - fixed problem due to any graphics program using HERC.BGI under Desqview.
  882.   - added Ctrl Arrow-Left for going to parent of currently highlighted path.
  883.   - added Arrow-Right/Arrow-Left to equal function of TAB/BACKTAB.
  884.   - added = for toggling scrollback history function in pop-up window.
  885.   - scrollback history function can also be called by ACD = instead of ACD ! .
  886.   - added ALT-T for displaying current path on top of screen.
  887.   - added ALT-G for toggling "graphic" display.
  888.   - added "graphic" for displaying paths; see also new /g option.
  889.   - added /u and /0 options, so patches are not necessary when using ACD in an
  890.     alias; when /0 is specified twice, then the scrollback history will be
  891.     used.
  892.  
  893. version 1.14, Oct. 20, 1991
  894.   - fixed bug caused by too fast implementation of the /c option: ACD could
  895.     not recognize /create.
  896.   - added help from the pop-up window.
  897.   - /c and /i really toggle: when specified more than once, the toggling
  898.     on/off continues. Ideal for making /c the default in an alias.
  899.   - fixed small bug concerning HOME-key.
  900.  
  901. version 1.13, Oct. 15, 1991
  902.   - added /c option to use current drive for switching.
  903.   - added action of the : key when in pop-up window; all drives are selected.
  904.  
  905. version 1.12, Oct. 12, 1991
  906.   - added /i option to ignore unlogged drives; a patch can make this the
  907.     default. Saves (some) time.
  908.   - renames directories perfectly under NOVELL (NCD can't; LCD partly).
  909.  
  910. version 1.11, Oct. 6, 1991
  911.   - automatically adds newly unknown subdirectories with known parents; a
  912.     patch can disable this automatic function.
  913.   - fixed some bugs resulting in a corrupted ACD.IDX.
  914.  
  915. version 1.10, Oct. 1, 1991
  916.   - added \-function to display all subdirectories of partial match selection.
  917.   - added scrollback history function; a function to remember and pop-up the
  918.     last "historysize" (default: 20) directory-names (acd !).
  919.   - hidden directories are now also scanned.
  920.   - added ALT-C : center choice.
  921.   - added BackTab-function for selecting previous directory with same parent.
  922.  
  923. version 1.03, Sept. 14, 1991
  924.   - added possibility to patch function of calling ACD without parameters.
  925.   - if adding information with /[q]add that already exists in the information
  926.     database, the redundant information is removed. The replaced/added drive
  927.     information are put at the end of the database.
  928.   - position the highlight on the current directory if it is included in the
  929.     partial match set being displayed (sort of like "you are here").
  930.   - when drives do not exist anymore, for example when the network is not
  931.     loaded, the directories of these invalid drives are excluded from the
  932.     partial match list.
  933.   - fixed bugs:
  934.   . when removing a directory which had in the ACD database still some
  935.     subdirectories, the ACD database would get corrupted.
  936.   . when creating a new directory in the root, the ACD database would
  937.     get corrupted.
  938.  
  939. version 1.02, Sept. 7, 1991
  940.   - changed REN function to work as in (4)DOS. Example:
  941.        ACD ren d:\bin\dos olddos
  942.     now renames d:\bin\dos in d:\bin\olddos in stead of giving an error
  943.     message. However, if you enter ACD ren d:\bin\dos d:\olddos, you'll still
  944.     get an error message and ERRORLEVEL 15 will be set.
  945.   - Some minor code changes.
  946.  
  947. version 1.01, Aug. 8, 1991
  948.   - added TAB-function for selecting next directory with same parent.
  949.   - some minor bugs fixed:
  950.   . in some instances when creating a directory, the sort order was not kept.
  951.   . when a subdirectory was created which had the same name as a `sibling' of
  952.     the parent, the ACD-database would not be updated.
  953.  
  954. version 1.0 , Aug. 7, 1991
  955.   - first public release.
  956.  
  957.